package cn.itcalvin.sncoal.cth.domain;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.Date;
import javax.persistence.*;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import lombok.Data;

/**
 * 用户账号信息
 */
@ApiModel(description="用户账号信息")
@Data
@Table(name = "info_user")
public class InfoUser {
    /**
     * 主键
     */
    @Id
    @Column(name = "id")
    @ApiModelProperty(value="主键")
    @NotNull(message = "主键不能为null")
    private Long id;

    /**
     * 矿区/矿井对应的ID
     */
    @Column(name = "belongId")
    @ApiModelProperty(value="矿区/矿井对应的ID")
    private Long belongId;

    /**
     * 用户名
     */
    @Column(name = "userName")
    @ApiModelProperty(value="用户名")
    @Size(max = 255,message = "用户名最大长度要小于 255")
    @NotBlank(message = "用户名不能为空")
    private String userName;

    /**
     * 登录账号/手机号
     */
    @Column(name = "loginName")
    @ApiModelProperty(value="登录账号/手机号")
    @Size(max = 50,message = "登录账号/手机号最大长度要小于 50")
    @NotBlank(message = "登录账号/手机号不能为空")
    private String loginName;

    /**
     * 登录密码（需要加密）
     */
    @Column(name = "loginPassword")
    @ApiModelProperty(value="登录密码（需要加密）")
    @Size(max = 255,message = "登录密码（需要加密）最大长度要小于 255")
    @NotBlank(message = "登录密码（需要加密）不能为空")
    private String loginPassword;

    /**
     * 状态 1.可用 2.禁用
     */
    @Column(name = "loginState")
    @ApiModelProperty(value="状态 1.可用 2.禁用")
    @NotNull(message = "状态 1.可用 2.禁用不能为null")
    private Integer loginState;

    /**
     * 账号角色：1.股份 2.专家 3.矿井 4.矿区
     */
    @Column(name = "roleId")
    @ApiModelProperty(value="账号角色：1.股份 2.专家 3.矿区 4.矿井")
    @NotNull(message = "账号角色：1.股份 2.专家 3.矿井 4.矿区不能为null")
    private Integer roleId;

    @Column(name = "isManager")
    @ApiModelProperty(value="是否是管理员")
    @NotNull(message = "是否是管理员不能为null")
    private Boolean isManager;

    /**
     * 创建人
     */
    @Column(name = "createId")
    @ApiModelProperty(value="创建人")
    @NotNull(message = "创建人不能为null")
    private Long createId;

    /**
     * 创建时间
     */
    @Column(name = "createTime")
    @ApiModelProperty(value="创建时间")
    @NotNull(message = "创建时间不能为null")
    private Date createTime;

    /**
     * 创建人
     */
    @Column(name = "modifyId")
    @ApiModelProperty(value="创建人")
    private Long modifyId;

    /**
     * 创建时间
     */
    @Column(name = "modifyTime")
    @ApiModelProperty(value="创建时间")
    private Date modifyTime;

    /**
     * 创建人
     */
    @Column(name = "deleteId")
    @ApiModelProperty(value="创建人")
    private Long deleteId;

    /**
     * 创建时间
     */
    @Column(name = "deleteTime")
    @ApiModelProperty(value="创建时间")
    private Date deleteTime;

    /**
     * 是否删除
     */
    @Column(name = "isDelete")
    @ApiModelProperty(value="是否删除")
    @NotNull(message = "是否删除不能为null")
    private Boolean isDelete;
}